var gulp = require('gulp')
// 将sass进行编译转成css
var sass = require('gulp-sass')
// 自动加css前缀
var	autoprefixer = require('gulp-autoprefixer')
// 实现浏览器热更新
var livereload = require('gulp-livereload')
// 对js进行压缩
var uglify = require('gulp-uglify')
// 对文件进行重命名
var rename = require('gulp-rename')
// 源码跟踪，当报错的时候可以追踪到报错的源代码，而不是便宜后的代码
var sourcemaps = require('gulp-sourcemaps')
// 对es6进行编译，对不支持es6的浏览器进行兼容
var babel = require('gulp-babel')



gulp.task('styles', function() {
  return gulp.src('app/sass/*/*.scss')
          .pipe(sass())
          .pipe(autoprefixer('last 2 version'))
          .pipe(gulp.dest('server/public/css'))
          .pipe(livereload());
})


gulp.task('scripts', function() {
	return gulp.src('app/js/*/*.js')
		.pipe(sourcemaps.init())
		.pipe(babel({
			presets: ['env']
		}))
		.pipe(uglify())
		.pipe(sourcemaps.write())
		.pipe(gulp.dest('server/public/js'))
		.pipe(livereload());
})

gulp.task('watch', function() {
  livereload.listen()
  gulp.watch('app/sass/*/*.scss', ['styles'])
  gulp.watch('app/js/*/*.js', ['scripts'])
})

gulp.task('default', ['styles', 'scripts', 'watch'])